# -*- coding: utf-8 -*-

import abc
from six import with_metaclass

class AbstractStrategyLoader(with_metaclass(abc.ABCMeta)):
    '''
        策略加载器,其主要作用是加载策略，并将策略运行所需要的域环境传递给策略执行代码。
        此类为抽象类，具体功能实现在子类的定义中。
    '''

    @abc.abstractmethod
    def load(self, scope):
        '''
                         将策略代码和相关上下文加载到内存中，并输出加载好的对象
        :param dict scope:代码运行的环境
        :return scope 包含策略文件中对应函数, 如init, handle_data等
        '''
    raise NotImplementedError